/**
 * @author 侯非
 * @date 2009年3月7日
 * @class UserInfoForm
 * @extends Ext.form.FormPanel
 * @description 用户信息表单类
 */
UserInfoForm = Ext.extend(Ext.form.FormPanel, {
			// 用户角色数据存储器
			userRoleStore : null,
			pwd1Visable : true,
			mydisabled : false,
			// 构造方法
			constructor : function(_cfg) {
				if (_cfg == null) {
					_cfg = {}
				}
				Ext.apply(this, _cfg);
				// 给当前属性(userRoleStore)赋值
				this.userRoleStore = new Ext.data.JsonStore({
							url : "userRole.do?operator=showAllUserRoles",
							fields : ["urId", "urName"]
						});
				// 将父类的构造拷贝到当前类
				UserInfoForm.superclass.constructor.call(this, {
							layout : "form", // 当前布局为form布局
							frame : true, // 填充颜色
							labelWidth : 55,
							baseCls : "x-plain", // 统一背景色
							bodyStyle : "padding:10px;", // css填充10个像素
							defaults : {
								xtype : "textfield",
								anchor : "95%"
							},
							items : [{
								fieldLabel : "账号",
								emptyText : "请输入账号",
								disabled : this.mydisabled,  //指定该控件是否可用(mydisabled为自定义属性)
								name : "userInfo.userAccount",
								allowBlank : false
									// 不允许为空
								}, {
								fieldLabel : "密码",
								name : "userPass1",
								inputType : "password",
								allowBlank : false
									// 不允许为空
								}, {
								fieldLabel : "确认密码",
								inputType : "password",
								name : "userInfo.userPass",
								invalidText : "两次输入的密码不一致", // 验证失败出现的提示
								allowBlank : false, // 不允许为空
								validator : function() { // 验证
									var _pwd1 = this.ownerCt.items.itemAt(1)
											.getValue(1);
									var _pwd2 = this.getValue();
									if (_pwd1 == _pwd2) {
										return true;
									} else {
										return false;
									}
								}
							}, {
								fieldLabel : "真实姓名",
								emptyText : "请输入您的真实姓名",
								name : "userInfo.userTrueName",
								allowBlank : false
							}, {
								fieldLabel : "用户角色",
								xtype : "combo", // 类型为下拉列表框
								store : this.userRoleStore, // 指定数据
								triggerAction : "all", // 显示所有数据
								readOnly : false, // 只读
								disabled : this.mydisabled,  //指定该控件是否可用(mydisabled为自定义属性)
								allowBlank : this.mydisabled, // 不允许为空,
								emptyText : "请选择用户角色(权限)",
								hiddenName : "userInfo.userrole.urId", // 下拉列表框的name
								displayField : 'urName', // 要显示的值
								valueField : 'urId' // 要提交的值
							}, {
								fieldLabel : "备注",
								xtype : "textarea", // 多行文本框
								name : "userInfo.userMemo" // name
							}]
						});
			},

			/**
			 * 表单提交
			 * 
			 * @param {}
			 *            _url
			 */
			mySubmit : function(_url) {
				this.getForm().submit({
							url : _url,
							waitTitle : "数据传输",
							waitMsg : "数据传输中,请稍等...",
							success : this.onSuccess,
							failure : this.onFailure,
							scope : this
						});
			},

			/**
			 * 操作成功
			 * 
			 * @param {}
			 *            _form
			 * @param {}
			 *            _action 服务端返回值
			 */
			onSuccess : function(_form, _action) {
				// 关闭窗体
				this.ownerCt.onClose();
				// 表格数据重新加载
				_userInfogp.getStore().reload();
			},

			/**
			 * 操作失败
			 * 
			 * @param {}
			 *            _form
			 * @param {}
			 *            _action 服务端返回值
			 */
			onFailure : function(_form, _action) {
				Ext.Msg.alert("系统消息", _action.result["errorMsg"]);
			}
		});